home *** CD-ROM | disk | FTP | other *** search
- #ifndef PPC
-
- #include <exec/types.h>
- #include <inline/stubs.h>
-
- /*
- PRH:
-
- GCC has problems with functions that have a large number of registerised
- parameters. This file is just a quick hack to get things to work
- correctly.
- */
-
- extern struct Library *CyberGfxBase;
-
- ULONG WritePixelArray(APTR srcRect, UWORD SrcX, UWORD SrcY, UWORD SrcMod, struct RastPort *RastPort, UWORD DestX, UWORD DestY, UWORD SizeX, UWORD SizeY, UBYTE SrcFormat)
- {
- register ULONG res __asm("d0");
- register struct Library *a6 __asm("a6") = CyberGfxBase;
- register APTR a0 __asm("a0") = srcRect;
- register UWORD d0 __asm("d0") = SrcX;
- register UWORD d1 __asm("d1") = SrcY;
- register UWORD d2 __asm("d2") = SrcMod;
- register struct RastPort *a1 __asm("a1") = RastPort;
- register UWORD d3 __asm("d3") = DestX;
- register UWORD d4 __asm("d4") = DestY;
- register UWORD d5 __asm("d5") = SizeX;
- register UWORD d6 __asm("d6") = SizeY;
- register UBYTE d7 __asm("d7") = SrcFormat;
- __asm volatile ("jsr a6@(-0x7e:W)"
- : "=r" (res)
- : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (a1), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (d7)
- : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory");
- return res;
- }
-
- #endif
-